IKE(网络密钥交换协议)
IKE属于一种混合型协议,由Internet安全关联和密钥管理协议(ISAKMP)和两种密钥交换协议OAKLEY与SKEME组成。IKE创建在由ISAKMP定义的框架上,沿用了OAKLEY的密钥交换模式以及SKEME的共享和密钥更新技术,还定义了它自己的两种密钥交换方式:主模式和野蛮模式。
IKE协商两种SA:
- IKE(ISAKMP) SA (Phase 1)
- IPSEC SA(Phase 2)
IKE与IPSec的关系如下图所示,对等体之间建立一个IKE SA完成身份验证和密钥信息交换后,在IKE SA的保护下,根据配置的AH/ESP安全协议等参数协商出一对IPSec SA。此后,对等体间的数据将在IPSec隧道中加密传输。
IKE SA是一个双向的逻辑连接,两个对等体间只建立一个IKE SA。
IKEv1协商阶段1
IKEv1协商阶段1的目的是建立IKE SA。IKE SA建立后对等体间的所有ISAKMP消息都将通过加密和验证,这条安全通道可以保证IKEv1第二阶段的协商能够安全进行。
IKEv1协商阶段1支持两种协商模式:主模式(Main Mode)和野蛮模式(Aggressive Mode)。
主模式包含三次双向交换,用到了六条ISAKMP信息。
- 消息①和②用于提议交换发起方发送一个或多个IKE安全提议,响应方查找最先匹配的IKE安全提议,并将这个IKE安全提议回应给发起方。匹配的原则为协商双方具有相同的加密算法、认证算法、认证方法和Diffie-Hellman组标识。
- 消息③和④用于密钥信息交换双方交换Diffie-Hellman公共值和nonce值,用于IKE SA的认证和加密密钥在这个阶段产生。
- 消息⑤和⑥用于身份和认证信息交换(双方使用生成的密钥发送信息),双方进行身份认证和对整个主模式交换内容的认证。
IKEv1协商阶段2
IKEv1协商阶段2的目的就是建立用来安全传输数据的IPSec SA,并为数据传输衍生出密钥。这一阶段采用快速模式(Quick Mode)。该模式使用IKEv1协商阶段1中生成的密钥对ISAKMP消息的完整性和身份进行验证,并对ISAKMP消息进行加密,故保证了交换的安全性
AH/ESP安全协议
IPSec使用认证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两种IP传输层协议来提供认证或加密等安全服务。
- AH协议
AH仅支持认证功能,不支持加密功能。AH在每一个数据包的标准IP报头后面添加一个AH报文头,AH对数据包和认证密钥进行Hash计算,接收方收到带有计算结果的数据包后,执行同样的Hash计算并与原计算结果比较,传输过程中对数据的任何更改将使计算结果无效,这样就提供了数据来源认证和数据完整性校验。AH协议的完整性验证范围为整个IP报文。 - ESP协议
ESP支持认证和加密功能。ESP在每一个数据包的标准IP报头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾(ESP Trailer和ESP Auth data)。与AH不同的是,ESP将数据中的有效载荷进行加密后再封装到数据包中,以保证数据的机密性,但ESP没有对IP头的内容进行保护,除非IP头被封装在ESP内部(采用隧道模式)。
封装模式
传输模式
隧道模式
传输模式和隧道模式的区别在于:
- 从安全性来讲,隧道模式优于传输模式。它可以完全地对原始IP数据包进行验证和加密。隧道模式下可以隐藏内部IP地址,协议类型和端口。
- 从性能来讲,隧道模式因为有一个额外的IP头,所以它将比传输模式占用更多带宽。
- 从场景来讲,传输模式主要应用于两台主机或一台主机和一台VPN网关之间通信;隧道模式主要应用于两台VPN网关之间或一台主机与一台VPN网关之间的通信。
配置
Step1:ACL设定感兴趣流
R2#show run | se access
access-list 100 permit ip 172.168.0.0 0.0.255.255 192.168.0.0 0.0.255.255
R3#show run | se access
access-list 100 permit ip 192.168.0.0 0.0.255.255 172.168.0.0 0.0.255.255
Step2: IKE Phase 1
R3(config)#crypto isakmp policy 10
R3(config-isakmp)# encr aes 256
R3(config-isakmp)# hash sha512
R3(config-isakmp)# authentication pre-share
R3(config-isakmp)# group 24
Step3: IKE Phase 2
R3(config-isakmp)#crypto ipsec transform-set CCIE esp-aes 256 esp-sha512-hmac
R3(cfg-crypto-trans)# mode tunnel
Step 4: Pre-share Key
R3(config)#crypto isakmp key ccie address 12.1.1.2
Step 5: Crypto Map
R3(config)#crypto map CCIE 10 ipsec-isakmp
R3(config-crypto-map)# set peer 12.1.1.2
R3(config-crypto-map)# set transform-set CCIE
R3(config-crypto-map)# match address 100
R3(config)#int e0/0
R3(config-if)#crypto map CCIE
R3(config-if)#
测试
R2#show run | se ip route
ip route 192.168.0.0 255.255.0.0 Ethernet0/1 12.1.1.1
R3#show run | se ip route
ip route 172.168.0.0 255.255.0.0 Ethernet0/0 13.1.1.1
R2#ping 192.168.35.3 source 172.168.24.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.35.3, timeout is 2 seconds:
Packet sent with a source address of 172.168.24.2
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/7/18 ms
R2#
R2#show crypto isakmp sa
IPv4 Crypto ISAKMP SA
dst src state conn-id status
13.1.1.3 12.1.1.2 QM_IDLE 1002 ACTIVE
IPv6 Crypto ISAKMP SA
R2#show crypto ipsec sa
interface: Ethernet0/1
Crypto map tag: CCIE, local addr 12.1.1.2
protected vrf: (none)
local ident (addr/mask/prot/port): (172.168.0.0/255.255.0.0/0/0)
remote ident (addr/mask/prot/port): (192.168.0.0/255.255.0.0/0/0)
current_peer 13.1.1.3 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 13, #pkts encrypt: 13, #pkts digest: 13
#pkts decaps: 13, #pkts decrypt: 13, #pkts verify: 13
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 12.1.1.2, remote crypto endpt.: 13.1.1.3
plaintext mtu 1422, path mtu 1500, ip mtu 1500, ip mtu idb Ethernet0/1
current outbound spi: 0x8B4A1080(2336886912)
PFS (Y/N): N, DH group: none
inbound esp sas:
spi: 0x6E2BE3E4(1848370148)
transform: esp-256-aes esp-sha512-hmac ,
in use settings ={Tunnel, }
conn id: 7, flow_id: SW:7, sibling_flags 80004040, crypto map: CCIE
sa timing: remaining key lifetime (k/sec): (4197493/573)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x8B4A1080(2336886912)
transform: esp-256-aes esp-sha512-hmac ,
in use settings ={Tunnel, }
conn id: 8, flow_id: SW:8, sibling_flags 80004040, crypto map: CCIE
sa timing: remaining key lifetime (k/sec): (4197493/573)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE(ACTIVE)
outbound ah sas:
outbound pcp sas:
R2#
参考文章
一张图认识IPSec,区分IKE SA(ISAKMP SA)和IPSec SA
https://blog.csdn.net/pz641/article/details/114585187
https://www.jannet.hk/internet-protocol-security-ipsec-zh-hant/
No comments
Comments feed for this article